Virtual license documents

ABSTRACT

Exemplary methods, systems, and products are described for creating a virtual license document for material subject to an end-user license agreement (‘EULA’). Embodiments include identifying a licensing clause for the virtual license document; creating metadata describing the licensing clause; and inserting in a markup document the licensing clause and the metadata describing the clause. Identifying a licensing clause for the virtual license document may be carried out by identifying a known licensing clause in an existing end-user license agreement (‘EULA’) in dependence upon licensing clause identification rules. Identifying a known clause in an existing end-user license agreement (‘EULA’) in dependence upon clause identification rules may be carried out by identifying keywords in the existing end-user license agreement (‘EULA’) predetermined to be associated with a known clause in end-user license agreements; and identifying the known licensing clause in dependence upon the keywords.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The field of the invention is data processing, or, more specifically, methods, systems, and products for creating a virtual license document for material subject to an end-user license agreement (‘EULA’).

2. Description of Related Art

Employees often have the ability to access material subject to end-user license agreements (‘EULAs’) despite employer policies which may prevent or limit the employees' permitted use of that material. Often within a company, or other large organizations, the current process for gaining access to material governed by an end-user license agreement (‘EULA’) generally involves a user contacting their legal representative and providing legal representative with detailed data (company name, document location, license location) about the material they are trying to access and the governing EULA. The legal representative then typically reviews the EULA requiring the legal representative to pour through pages of license information to determine the issues and consequences of granting access to the new material. Even if the same or similar EULA has been previously approved, it can take hours or even days to get the approval from the legal representative using this manual process. If the license has not already been approved, this process can take days or even weeks, which can cost companies dearly in time to market for their products.

SUMMARY OF THE INVENTION

Exemplary methods, systems, and products are described for creating a virtual license document for material subject to an end-user license agreement (‘EULA’). Embodiments include identifying a licensing clause for the virtual license document; creating metadata describing the licensing clause; and inserting in a markup document the licensing clause and the metadata describing the clause. Identifying a licensing clause for the virtual license document may be carried out by identifying a known licensing clause in an existing end-user license agreement (‘EULA’) in dependence upon licensing clause identification rules. Identifying a known clause in an existing end-user license agreement (‘EULA’) in dependence upon clause identification rules may be carried out by identifying keywords in the existing end-user license agreement (‘EULA’) predetermined to be associated with a known clause in end-user license agreements; and identifying the known licensing clause in dependence upon the keywords. Identifying a licensing clause for the virtual license document may include receiving a clause for an end-user license agreement from a user.

Creating metadata describing the licensing clause may include selecting one of a plurality of a markup tags identifying a licensing clause type. Creating metadata describing the clause may also include creating a markup tag identifying a licensing clause type.

The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular descriptions of exemplary embodiments of the invention as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts of exemplary embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 sets forth a network diagram illustrating an exemplary system for administration of end-user license agreements.

FIG. 2 sets forth a block diagram of an exemplary system for administration of end-user license agreements.

FIG. 3 sets forth a block diagram of an exemplary system for creating rules for the administration of end-user license agreements.

FIG. 4 sets forth a block diagram of automated computing machinery comprising an exemplary computer useful in administration of end-user license agreements.

FIG. 5 sets forth a block diagram of automated computing machinery comprising an exemplary license administration server useful in creating rules for the administration of end-user license agreements.

FIG. 6 sets forth a flow chart illustrating an exemplary computer-implemented method for administration of end-user license agreements.

FIG. 7 sets forth a flow chart illustrating an exemplary computer-implemented method for determining whether terms of a EULA are acceptable.

FIG. 8 sets forth a flow chart illustrating an exemplary computer-implemented method for determining whether modified license terms apply to the material subject to the EULA.

FIG. 9 sets forth a flow chart illustrating an exemplary method for identifying whether material is subject to an end-user license agreement (‘EULA’).

FIG. 10 sets forth a flow chart illustrating an exemplary computer-implemented method for creating rules for the administration of end-user license agreements.

FIG. 11 sets forth a flow chart illustrating an exemplary computer-implemented method for creating rules for the administration of end-user license agreements.

FIG. 12 sets forth a flow chart illustrating an exemplary computer-implemented method for creating a virtual license document for material subject to an end-user license agreement (‘EULA’).

FIG. 13 sets forth a flow chart illustrating an exemplary method for identifying a licensing clause for the virtual license document.

FIG. 14 sets forth flow chart illustrating another exemplary method for identifying a licensing clause for the virtual license document.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS Exemplary Architecture

Exemplary methods, systems, and products for administration of end-user license agreements according to embodiments of the present invention are described with reference to the accompanying drawings, beginning with FIG. 1. FIG. 1 sets forth a network diagram illustrating an exemplary system for administering end-user license agreements according to embodiments of the present invention. The system of FIG. 1 operates generally to administer end-user license agreements according to embodiments of the present invention by receiving license data in a response to a user's request for access to material subject to an end-user license agreement (‘EULA’), determining, in dependence upon the license data and one or more license administration rules, whether terms of the EULA are acceptable, and indicating to the user whether the terms of the EULA are acceptable. A ‘EULA’ refers to any licensing agreement. EULAs typically govern use, access, distribution, replication of the material subject to the EULA. EULAs are also sometimes referred to simply as licenses, or software licenses, although the term ‘software license’ in this context is not intended to limit the term to executable software only, rather the term is used broadly to include any material that may be subject to a license and accessible using computing machinery.

The arrangement of servers and other devices making up the exemplary system illustrated in FIG. 1 are for explanation, not for limitation. Data processing systems useful according to various embodiments of the present invention may include additional servers, routers, other devices, and peer-to-peer architectures, not shown in FIG. 1, as will occur to those of skill in the art. Networks in such data processing systems may support many data communications protocols, including for example TCP/IP, HTTP, WAP, HDTP, and others as will occur to those of skill in the art. Various embodiments of the present invention may be implemented on a variety of hardware platforms in addition to those illustrated in FIG. 1.

The system of FIG. 1 includes several exemplary client devices connected through a network of interest (101) and wide area network (103) to a source server (105). The client computers in the example of FIG. 1 include a personal computer (108) connected to network of interest (101) through wire line connection (120), a wireless, network-enabled personal digital assistant (‘PDA’) (112) connected to network of interest (101) through wireless connection (114), and mobile telephone (110) connected to network of interest (101) through wireless connection (116). In the system of FIG. 1, network of interest (101) is a network of commonly controlled devices. That is, the network of interest includes devices that are owned or operated by a common entity, such as a network of a company, or a network of a division of a company.

Client computers are computers capable of interacting with a user and with other computer devices. The client computers of FIG. 1 each have installed upon them a license administration module capable generally of receiving, in a response to a user's request for access to material subject to an end-user license agreement (‘EULA’), license data and indicating to the user whether the terms of the EULA are acceptable. In the example of FIG. 1, the license administration module installed on the client computers are capable of sending license data to the license administration server (106) and receiving from the license administration server a determination whether or not the EULA is acceptable. ‘License data’ refers to information about a EULA. The license data may include, for example, the text of EULA, metadata regarding the EULA, program code configured to allow the user to view the EULA and to accept or reject the EULA or any other information describing the EULA governing the requested material.

The license administration server (106) of FIG. 1 has installed on it a license administration module capable generally of determining whether terms of a EULA are acceptable in dependence upon license data and one or more license administration rules. The license administration module of the license administration server (106) may also be configured to create rules for the administration of EULAs by identifying a license administration pattern from historical license data, and creating a license administration rule in dependence upon the license administration pattern.

License administration rules are conditional expressions which individually or collectively establish conditions for accepting or rejecting a EULA. A simple example of license administration rules is shown below for further explanation: Rule = acceptable license source   IF license source = Company X     THEN license acceptable.

The example above sets forth a license administration rule entitled “acceptable license source”. The administration rule includes the condition “IF license source=Company X”. If the license data indicates that the EULA is from a source called “Company X,” then the exemplary license administration rule dictates that the license is acceptable.

The license administration server (106) of FIG. 1 also has installed on it a license identification module, computer program instructions for identifying whether the material is subject to an end-user license agreement (‘EULA’). The license identification module is capable generally of receiving a response to a request for the material; determining whether the content of the response contains predefined license identification metadata; and determining in dependence upon the predefined license identification metadata that the requested material is subject a EULA if the content of the response contains predefined license identification metadata. The license identification module of FIG. 1 is also capable of searching the content of the response for predefined licensing keywords if the contents of the response does not contain predefined license identification metadata; and determining that the requested material is subject a EULA if the content of the response contains predefined licensing keywords.

In the system of FIG. 1, a source server (105) is connected to a wide area network (‘WAN’) (103) which is connected to network of interest (101). Source server (105) is a server providing material (442) subject to a EULA and license data (418) regarding the EULA. The source server (105) of FIG. 1 is capable generally of responding to requests to access the material (442) subject to a EULA and sending license data (418). The source server (105) of FIG. 1 is typically configured to inhibit access to the material (442) subject to a EULA unless the user accepts the EULA.

Each of the computers (108, 112, 110, 105, and 106) of FIG. 1 are also capable of supporting a virtual license document creation tool, computer program instructions for creating a virtual license document for material subject to an end-user license agreement (‘EULA’). A virtual license document is a document including one or more licensing clause governing the particular material and metadata describing the licensing clause. Such a virtual license document may be implemented as a markup document containing both a licensing clause in text and markup describing the clause. Such a virtual license document is useful in the administration of end-user license agreements according to embodiments of the present invention. Virtual license document creation tools according to the present invention are capable generally of identifying a licensing clause for a virtual license document; creating metadata describing the licensing clause; and inserting in a markup document the licensing clause and the metadata describing the clause.

The arrangement of servers and other devices making up the exemplary system illustrated in FIG. 1 are for explanation, not for limitation. Data processing systems useful according to various embodiments of the present invention may include additional servers, routers, other devices, and peer-to-peer architectures, not shown in FIG. 1, as will occur to those of skill in the art. Networks in such data processing systems may support many data communications protocols, including for example TCP (Transmission Control Protocol), IP (Internet Protocol), HTTP (HyperText Transfer Protocol), WAP (Wireless Access Protocol), HDTP (Handheld Device Transport Protocol), and others as will occur to those of skill in the art. Various embodiments of the present invention may be implemented on a variety of hardware platforms in addition to those illustrated in FIG. 1.

For further explanation, FIG. 2 sets forth a block diagram of an exemplary system for identifying whether the material (442) is subject to a EULA and administering EULAs according to embodiments of the present invention. The system of FIG. 2 is capable of identifying whether the material is subject to a EULA by receiving a response to a request for the material; determining whether the content of the response contains predefined license identification metadata; and determining in dependence upon the predefined license identification metadata that the requested material is subject a EULA if the content of the response contains predefined license identification metadata. The system of FIG. 2 is also capable of searching the content of the response for predefined licensing keywords if the contents of the response does not contain predefined license identification metadata; and determining that the requested material is subject a EULA if the content of the response contains predefined licensing keywords.

The system of FIG. 2 is capable of administering end-user license agreements according to embodiments of the present invention by receiving license data (418) in a response to a user's request for access to material (442) subject to a EULA, determining whether terms of the EULA are acceptable, in dependence upon the license data (418) and one or more license administration rules (416), and indicating to the user whether the terms of the EULA are acceptable.

The system of FIG. 2 includes a user computer (200) which includes one or more application programs (208), computer program instructions that enable a user to access, display, and interact with material that may be subject to a EULA such as files hosted by servers, held in a file systems, or other material as will occur to those of skill in the art. One example of application programs (208) useful in accessing material subject to EULAs is a browser, computer program instructions for accessing, displaying or interacting with files hosted by a server or held in a file system. Browsers available for personal computers include Microsoft Internet Explorer, Mozilla Firefox, Opera, and Safari. Another example of an application program useful in accessing material subject to EULAs is an installation program, computer program instructions for installing computer programs onto user computer (200). Installation programs available for personal computers include InstallShield, InstallAnywhere, and Microsoft Windows Installer. Browsers and installation programs are included for explanation and not for limitation. In fact, many applications are capable of requesting and receiving material subject to a EULA and all such programs may be used with the present invention. In response to the request for access to the material, the source (126) sends license data (418) to a license administration module (206) also installed on the user computer (200). License administration module (206) includes a license identification module (204), computer program instructions for identifying whether the material is subject to an end-user license agreement (‘EULA’). The license identification module is capable generally of receiving a response to a request for the material; determining whether the content of the response contains predefined license identification metadata; and determining in dependence upon the predefined license identification metadata that the requested material is subject a EULA if the content of the response contains predefined license identification metadata. The license identification module of FIG. 2 is also capable of searching the content of the response for predefined licensing keywords if the contents of the response does not contain predefined license identification metadata; and determining that the requested material is subject a EULA if the content of the response contains predefined licensing keywords.

License administration module (206) also includes a license analysis module (202), computer program instructions for determining, in dependence upon the license data (418) and one or more license administration rules (416), whether terms of the EULA are acceptable. In the example of FIG. 2, the license analysis module (202) retrieves license administration rules (416) from a database (210). In the system of FIG. 2, the license analysis module (202) is also capable of retrieving a user profile (420) for the user operating the application program (208) and determining, in dependence upon the license data (418), the license administration rules (416) and the user profile, whether terms of the EULA are acceptable. Upon determining whether terms of the EULA are acceptable, the license administration module is capable of indicating to a user whether the terms of the EULA are acceptable.

For further explanation, FIG. 3 sets forth a block diagram of an exemplary system for creating rules for the administration of end-user license agreements according to embodiments of the present invention. The system of FIG. 3 operates generally to create license administration rules (220) according to embodiments of the present invention by identifying a license administration pattern from historical license data (302), and creating a license administration rule (220) in dependence upon the license administration pattern.

The system of FIG. 3 includes a user computer (200) having application programs (208). In the system of FIG. 3, application programs (208) request access to material subject to a EULA (442) from a source (126), such as source server (105 in FIG. 1), often based on input from a user. In response to the request for access to the material subject to the EULA, source (126) sends license data (418) to the license administration module (206). Application programs (208) may alternatively request access to material subject to a EULA (442) already downloaded to the same computer on which the application programs are running. That is, material subject to a EULA may already reside on the computer on which the application programs are running.

License administration module (206) of FIG. 3 includes a log module (216), computer program instructions for recording license data (418) in a memory. In the example of FIG. 3, log module (216) of license administration module (206) records the received license data (418) in a database (210).

The system of FIG. 3 also includes a license administration server (106) in communication with the database (210). License administration server (106) has installed upon it a license administration module (183) including a data mining module (212), computer program instructions for identifying a license administration pattern from historical license data (302), and creating a license administration rule (220) in dependence upon the license administration pattern. One example of off-the-shelf data mining software suitable for use as data mining module (212) is IBM'® “Intelligent Miner.” “Intelligent Miner” can be operated in several computing environments including AIX, AS/400, and OS/390. The Intelligent Miner is an enterprise data mining tool, designed for client/server configurations and optimized to mine very large data sets, such as gigabyte data sets. The Intelligent Miner includes a plurality of data mining techniques or tools used to analyze large databases and provides visualization tools used to view and interpret the different mining results.

The license administration module (183) of FIG. 3 also includes a rule comparator module (214), computer program instructions for determining whether one or more new license administration rules (220) supersede one or more old license administration rules (218). An old license administration rule is any existing license administration rule. The term ‘old’ is not used to indicate any requirement of age and is used herein to distinguish such an existing license administration rule from a newly created license administration rule. A new license administration rule supersedes an old license administration rule if a EULA rejected by the new license administration rule is acceptable under an old license administration rule, or if a EULA acceptable under the new license administration rule is rejected by the old license administration rule. If rule comparator module (214) determines that one or more new license administration rules (220) supersede one or more old license administration rules (218), license administration module (183) may execute an action, such as for example, deleting one or more superseded rules.

The user computer (200) of FIG. 3 also includes a virtual license document creation tool (209), computer program instructions for creating a virtual license document for material subject to an end-user license agreement (‘EULA’). A virtual license document is a document including one or more licensing clause governing the particular material and metadata describing the licensing clause. Such a virtual license document may be implemented as a markup document containing both a licensing clause in text and markup describing the clause. Such a virtual license document is useful in the administration of end-user license agreements according to embodiments of the present invention. The virtual license document creation tool of FIG. 3 is capable generally of identifying a licensing clause for a virtual license document; creating metadata describing the licensing clause; and inserting in a markup document the licensing clause and the metadata describing the clause.

Administering end-user license agreements in accordance with the present invention is generally implemented with computers, that is, with automated computing machinery. For further explanation, therefore, FIG. 4 sets forth a block diagram of automated computing machinery comprising an exemplary client computer (152) useful in administering EULAs according to embodiments of the present invention. Client computer (152) of FIG. 4 includes at least one computer processor (156) or ‘CPU’ as well as random access memory (168) (“RAM”) which is connected through a system bus (160) to processor (156) and to other components of the computer.

Stored in RAM (168) are application programs (208), computer program instructions that enable a user to access, display and interact with material that may be subject to a EULA such as files hosted by servers, held in a file systems, or other material as will occur to those of skill in the art. Also in stored RAM (168) is a license administration module (206), a set of computer program instructions improved for administering EULAs according to embodiments of the present invention.

The license administration module (206) of FIG. 4 includes a license identification module (204), computer program instructions for identifying whether the material is subject to a EULA. The license identification module is capable generally of receiving a response to a request for the material; determining whether the content of the response contains predefined license identification metadata; and determining in dependence upon the predefined license identification metadata that the requested material is subject a EULA if the content of the response contains predefined license identification metadata. The license identification module of FIG. 2 is also capable of searching the content of the response for predefined licensing keywords if the contents of the response does not contain predefined license identification metadata; and determining that the requested material is subject a EULA if the content of the response contains predefined licensing keywords.

The license administration module (206) of FIG. 4 also includes a license analysis module (202), computer program instructions for determining, in dependence upon license data and one or more license administration rules (416), whether terms of the EULA are acceptable. License administration module (206) also includes a log module (216), computer program instructions for recording license data.

Also stored in RAM is a virtual license document creation tool (209), computer program instructions for creating a virtual license document for material subject to a EULA. The virtual license document creation tool of FIG. 4 is capable generally of identifying a licensing clause for a virtual license document; creating metadata describing the licensing clause; and inserting in a markup document the licensing clause and the metadata describing the clause.

Also stored in RAM (168) is an operating system (154). Operating systems useful in computers according to embodiments of the present invention include UNIX™, Linux™, Microsoft Windows XP™, AIX™, IBM's i5/OS™, and others as will occur to those of skill in the art. Operating system (154), application programs (208), license administration module (206), license identification module (204), license analysis module (202), and log module (216) in the example of FIG. 4 are shown in RAM (168), but many components of such software typically are stored in non-volatile memory (166) also.

Client computer (152) of FIG. 4 includes non-volatile computer memory (166) coupled through a system bus (160) to processor (156) and to other components of the computer (152). Non-volatile computer memory (166) may be implemented as a hard disk drive (170), optical disk drive (172), electrically erasable programmable read-only memory space (so-called ‘EEPROM’ or ‘Flash’ memory) (174), RAM drives (not shown), or as any other kind of computer memory as will occur to those of skill in the art.

The example client computer of FIG. 4 includes one or more input/output interface adapters (178). Input/output interface adapters in computers implement user-oriented input/output through, for example, software drivers and computer hardware for controlling output to display devices (180) such as computer display screens, as well as user input from user input devices (181) such as keyboards and mice.

The exemplary client computer (152) of FIG. 4 includes a communications adapter (167) for implementing data communications (184) with other computers, such as source server (105) and license administration server (106). Such data communications may be carried out serially through RS-232 connections, through external buses such as USB, through data communications networks such as IP networks, and in other ways as will occur to those of skill in the art. Communications adapters implement the hardware level of data communications through which one computer sends data communications to another computer, directly or through a network. Examples of communications adapters useful for determining availability of a destination according to embodiments of the present invention include modems for wired dial-up communications, Ethernet (IEEE 802.3) adapters for wired network communications, and 802.11b adapters for wireless network communications.

For further explanation, FIG. 5 sets forth a block diagram of automated computing machinery comprising an exemplary license administration server (106) the administration of end-user license agreements according to embodiments of the present invention. License administration server (106) of FIG. 5 includes at least one computer processor (156) or ‘CPU’ as well as random access memory (168) (“RAM”) which is connected through a system bus (160) to processor (156) and to other components of the computer.

Stored in RAM (168) is a license administration module (183), computer program instructions for administration of EULAs according to embodiments of the present invention. In the exemplary computer of FIG. 5, license administration module (183) is implemented as server-side application that interacts with one or more client agents on client computers of a network of interest to administer EULAs according to some embodiments of the present invention. License administration module (183) includes a data mining module (212), computer program instructions for identifying license administration patterns from historical license data (302), and creating license administration rules (416) in dependence upon the license administration patterns. License administration module (183) also includes a rule comparator module (214), computer program instructions for determining whether one or more new license administration rules supersede one or more old license administration rules.

Also stored in RAM (168) is an operating system (154). Operating systems useful in computers according to embodiments of the present invention include UNIX™, Linux™, Microsoft Windows XP™, AIX™, IBM's i5/OS™, and others as will occur to those of skill in the art. Operating system (154), license administration module (183), data mining module (212), and rule comparator module (214) in the example of FIG. 5 are shown in RAM (168), but many components of such software typically are stored in non-volatile memory (166) also.

License administration server (106) of FIG. 5 includes non-volatile computer memory (166) coupled through a system bus (160) to processor (156) and to other components of the computer (152 in FIG. 4). Non-volatile computer memory (166) may be implemented as a hard disk drive (170), optical disk drive (172), electrically erasable programmable read-only memory space (so-called ‘EEPROM’ or ‘Flash’ memory) (174), RAM drives (not shown), or as any other kind of computer memory as will occur to those of skill in the art.

The exemplary license administration server (106) of FIG. 5 includes one or more input/output interface adapters (178). Input/output interface adapters in computers implement user-oriented input/output through, for example, software drivers and computer hardware for controlling output to display devices (180) such as computer display screens, as well as user input from user input devices (181) such as keyboards and mice.

The exemplary license administration server (106) of FIG. 5 includes a communications adapter (167) for implementing data communications (184) with other computers (182). Such data communications may be carried out through serially through RS-232 connections, through external buses such as USB, through data communications networks such as IP networks, and in other ways as will occur to those of skill in the art. Communications adapters implement the hardware level of data communications through which one computer sends data communications to another computer, directly or through a network. Examples of communications adapters useful for determining availability of a destination according to embodiments of the present invention include modems for wired dial-up communications, Ethernet (IEEE 802.3) adapters for wired network communications, and 802.11b adapters for wireless network communications.

Administering End User License Agreements

For further explanation, FIG. 6 sets forth a flow chart illustrating an exemplary computer-implemented method for administration of EULAs according to embodiments of the present invention that includes receiving (406), in a response (404) to a user's request (402) for access to material (442) subject to EULA (432), license data (418). In the example of FIG. 6, the material (442) is subject to a EULA (432). As discussed above, a ‘EULA’ refers to any licensing agreement. EULAs typically govern use, access, distribution, replication of the material subject to the EULA. EULAs are also sometimes referred to simply as licenses, or software licenses, although the term ‘software license’ in this context is not intended to limit the term to executable software only, rather the term is used broadly to include any material that may be subject to a license and accessible using computing machinery.

The user (712) typically requests access to the material (442) subject to the EULA (432) by sending a request from the user's computer to a source server (401), which regulates access to the requested material (442). When access to the material is subject to the EULA, source servers generally reply to the request (402) to access the material by sending license data (418). License data is information describing the EULA governing the use of the requested material. License data may include, for example, the text of the EULA, metadata regarding the EULA, program code configured to allow the user to view the EULA and to accept or reject the EULA or any other information describing the EULA governing the use of the requested material.

License data may in some cases be included with the terms of the EULA, such as in the case of virtual license documents. A virtual license document is a document including one or more licensing clause governing the particular material and metadata describing the licensing clause. Such a virtual license document may be implemented as a markup document containing both a licensing clause in text and markup describing the clause. Such a virtual license document is useful in the administration of end-user license agreements according to embodiments of the present invention.

The method of FIG. 6 also includes identifying (408) the license data (418) in the response (404) to the user's request for access to the material subject to the EULA. Identifying (408) the license data in the response (404) to the user's request for access to the material subject to the EULA may be carried out by monitoring responses to requests for access to the material made to source computers outside the immediate control of an organization administering end-user license agreements according to the present invention. A license administration module, installed as a plug-in in the application program or as an agent application on the user's computer, may be programmed to intercept information received in response to requests for material from sources outside the control of the user's organization to determine if the response includes license data indicating that the requested material is subject to a EULA.

The method of FIG. 6 also includes determining (434), in dependence upon the license data (418) and one or more license administration rules (416), whether terms of the EULA are acceptable. Determining whether terms of the EULA are acceptable may be carried out by determining whether one or more conditions defined in one or more license administration rules (416) for accepting a EULA are met. Determining whether terms of the EULA are acceptable may also include determining whether one or more conditions defined in one or more license administration rules for rejecting a EULA are met.

In the method of FIG. 6, determining whether terms of the EULA are acceptable is also dependent upon a user profile (420) of the user. That is, in the method of FIG. 6, a user profile (420) for the user (712) requesting access to the material subject to the EULA is referenced to determine if EULA should be accepted or rejected. User profiles typically include information such as user identification, user employment position, user permissions, and other information useful in determining whether the terms of the EULA are acceptable for the particular requesting user.

If the terms of the EULA (432) are acceptable, the method of FIG. 6 also includes indicating (436) to the user that the terms of the EULA are acceptable. Indicating (436) to the user that terms of the EULA are acceptable may be carried out by displaying a message to the user (712) indicating that the terms of the EULA are acceptable. Such a message may include an instruction to the user to accept the EULA, or other instruction as will occur to those of skill in the art.

If the terms of the EULA (432) are not acceptable, the method of FIG. 6 also includes indicating (437) to the user that the terms of the EULA are not acceptable. Indicating (437) to the user that terms of the EULA are not acceptable may be carried out by displaying a message to the user (712) indicating that the terms of the EULA are not acceptable. Such a message may include an instruction to the user to reject the EULA, or other instruction as will occur to those of skill in the art.

If the terms of the EULA (432) are not acceptable, the method of FIG. 6 alternatively also includes accessing (438) the material (442) subject to the EULA from an alternate source (446) where accessing the material from the alternate source is subject to an acceptable EULA (444). Accessing (438) the material (442) subject to the EULA from an alternate source (446) may be carried out by, for example, a license administration plug-in capable of directing the user to the alternate source, accessing the material (442) from the alternate source (446), and displaying the material (442) in the user's browser. Alternately, accessing (438) the material subject to the EULA (442) from an alternate source (446) may be carried out providing a user with a hyperlink to the alternate source (446) or in other ways as will occur to those of skill in the art.

For further explanation, FIG. 7 sets forth a flow chart illustrating an exemplary computer-implemented method for determining whether terms of a EULA are acceptable according to embodiments of the present invention. The method of FIG. 7 includes receiving (406) license data (418) and determining (604) whether the received license data (418) matches license data (412) for EULAs predetermined as acceptable (410). Determining (604) whether the received license data (418) matches license data (412) for EULAs predetermined as acceptable may be carried out by comparing the metadata received in the license data (418) identifying individual terms of the EULA or identifying a particular EULA with metadata in approved license data (412) for acceptable EULAs (410) stored in a database. Alternatively, determining (604) whether the received license data (418) matches license data (412) for EULAs predetermined as acceptable may be carried out by comparing the EULA word-for-word or term-by-term with license data (412) including acceptable EULAs or terms of acceptable EULAs (410).

If the received license data matches license data for EULAs predetermined to be acceptable, then the method of FIG. 7 includes indicating (433) to the user that the terms of the EULA are acceptable. Indicating (433) to the user that terms of the EULA are acceptable may be carried out by displaying a message to the user indicating that the terms of the EULA are acceptable. Such a message may include an instruction to the user to accept the EULA, or other instruction as will occur to those of skill in the art.

If the received license data does not match license data for EULAs predetermined to be acceptable, then the method of FIG. 7 includes indicating (440) to the user that the terms of the EULA are not acceptable. Indicating (440) to the user that terms of the EULA are not acceptable may be carried out by displaying a message to the user indicating that the terms of the EULA are acceptable. Such a message may include an instruction to the user to accept the EULA, or other instruction as will occur to those of skill in the art.

The method of FIG. 7 also includes inhibiting (422) the user's access to the material governed by the EULA if the terms of the EULA are not acceptable. Inhibiting (422) the user's access to the material subject to the EULA may be carried out by blocking access to the source server associated with the material subject to the EULA. Inhibiting (422) the user's access to the material subject to the EULA may also be carried out by automatically rejecting the EULA, for example, by sending a message directly to the source server to reject the EULA without intervention by the user, or in other ways as will occur to those of skill in the art.

For further explanation, FIG. 8 sets forth a flow chart illustrating an exemplary computer-implemented method for determining whether modified license terms apply to the material subject to the EULA according to embodiments of the present invention. The method of FIG. 8 includes receiving (406) license data (418) and identifying (424) license terms (430) of a EULA (432) in dependence upon the license data. In the example of FIG. 8, the license data (418) includes the actual terms of the EULA itself.

The method of FIG. 8 also includes determining (434) whether the terms (430) of the EULA (432) are acceptable. If the terms of the EULA are acceptable, then the method includes indicating (433) to the user that the terms of the EULA are acceptable.

If the terms of the EULA are not acceptable, the method of FIG. 8 also includes determining (702) whether modified licensing terms (710) apply to the material subject to the end-user license (432). Determining (702) whether modified licensing terms (710) apply to the material subject to the end-user license (432) may be carried out, for example, by determining whether access to the same material has been approved under terms different than those included in the EULA (432).

If no modified terms apply to the material subject to the EULA, the method of FIG. 8 includes indicating (440) to the user that the terms of the EULA are not acceptable. Indicating to the user that terms of the EULA are not acceptable may be carried out by displaying a message to the user indicating that the terms of the EULA are not acceptable. Such a message may include an instruction to the user to reject the EULA, or other instruction as will occur to those of skill in the art.

If modified license terms do apply to the material subject to the EULA, the method of FIG. 8 includes modifying (704) the terms of the EULA (432). Modifying the terms of the EULA may be carried out by substituting modified license terms (710) for terms within the EULA (432), by appending modified license terms (710) to the EULA (432), by entirely replacing the EULA (432) with the modified license terms (710), or other such methods as will be apparent to those of skill in the art.

The method of FIG. 8 also includes presenting (708) the modified EULA (706) to the user (712). Presenting (708) the modified EULA (706) to the user (712) informs the user that the modified EULA (706) governs access to the material requested by the user. Since the modified EULA (706) was modified based on pre-approved modified license terms (710), displaying the modified EULA (706) implicitly indicates to the user (712) that the terms of the modified EULA are acceptable.

For further explanation, consider the following example. A company has negotiated a license with a source of material subject to a EULA for its employees to access the material. The negotiated license is different than another EULA available to the general public for access to same material. In this example, in response to the user's request to access the material and in response to receiving the EULA available to the general public, terms of the modified license already negotiated with the source of the material are substituted for the terms of the EULA available to the general public.

Identifying Whether Material is Subject to an End-User License Agreement

As discussed above administering end-user license agreements is typically carried out in dependence upon license data. ‘License data’ refers to information about a EULA. The license data may include, for example, the text of a EULA, metadata regarding the EULA, program code configured to allow the user to view the EULA and to accept or reject the EULA or any other information describing the EULA governing the requested material. In the examples above, license data is explicitly received in response to a user request for material subject to a EULA. In some embodiments of the present invention, however, also includes determining whether the requested material is itself subject to a EULA. That is, prior to determining whether the terms of a EULA are acceptable, a determination is made that the requested material is in fact subject to a EULA.

For further explanation, FIG. 9 sets forth a flow chart illustrating an exemplary method for identifying whether requested material (902) is subject to an end-user license agreement (‘EULA’). In the example of FIG. 9, the requested material (902) is available at a universal resource locator (‘URL’) on a source sever (905). The method of FIG. 9 includes requesting (906) material from source server (905) and receiving (910) a response (912) to a request (904) for the material (902).

The method of FIG. 9 also includes determining (914) whether the content of the response (912) contains predefined license identification metadata. Such predefined license identification metadata identifies the requested material as being subject to a EULA. Such predefined license identification metadata may be included in the response for the requested material in a predefined location. One way of including predefined license identification metadata in a response for a request for material subject to a EULA may be carried out by inserting a value in an HTTP header field. The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. HTTP is a generic, stateless, protocol which can be used for many tasks beyond its use for hypertext through extension of its request methods, error codes and headers. The standard HTTP 1.1 protocol supports a general header field called the ‘Pragma’ header field. The Pragma header is used to include implementation specific directives that may apply to any recipient along the HTTP request/response chain. Such implementation specific directives often include information not formally defined in the HTTP specification. The most commonly value used by a Pragma header is ‘nocache’ which instructs a supporting web client to not cache the content contained in the HTTP message.

Another way of determining (914) whether the content of the response (912) contains predefined license identification metadata includes determining whether the response contains predefined license identification metadata in a markup document contained within in the response. A markup document containing predefined license identification metadata may be implemented as a virtual license document including one or more licensing clause governing the particular material and markup implementing metadata describing the licensing clause discussed below with reference to FIGS. 12, 13, and 14. Alternatively, a markup document containing predefined license identification metadata may be a separate markup document including markup identifying the requested material is subject to a EULA. Consider for further explanation the following snippet of an exemplary markup document containing predefined license identification metadata. <License Identification Markup Document>   <Material= Resource ID 1234 >   <EULA=True > </license Identification Markup Document>

In the example above, the markup tags <License Identification Markup Document> and </license Identification Markup Document> identify the markup document as a license identification markup document. The <Material=Resource ID 1234> tag identifies the requested material as resource ID 1234 and the <EULA=True> tag implements metadata identifying that resource ID 1234 is subject to a EULA.

If the content of the response (912) contains predefined license identification metadata, the method of FIG. 9 also includes determining (916) in dependence upon the predefined license identification metadata that the requested material (902) is subject a EULA. That is, the fact that the predefined license identification metadata is contained in the response is taken as an indication that the requested material is subject to a EULA.

The method of FIG. 9 also includes notifying (926) a user (924) that the requested material is subject to a EULA if the content of the response contains predefined license identification metadata. Notifying (926) a user (924) that the requested material is subject to a EULA may be carried out by displaying a notification on the user's computer, sending an electronic message to the user, for example, an email message, making a log entry in an identified log, and in other ways as will occur to those of skill in the art.

In addition to notifying the user if the content of the response contains predefined license identification metadata, license administration personnel may also be notified. Notifying license administration personnel if the content of the response contains predefined license identification metadata may be carried out by displaying a notification on a license administrators computer, sending an electronic message to a license administrator, for example, an email message, making a log entry in an identified log available to license administration personnel, and in other ways as will occur to those of skill in the art.

As discussed above, in some cases no predefined license identification metadata is included in the response. The method of FIG. 9 also includes searching (918) the content of the response (912) for predefined licensing keywords if the contents of the response does not contain predefined license identification metadata and determining (920) whether the response contains predefined licensing keywords. ‘Keywords’ refers to individual words or groups of words that may be commonly found in or associated with EULAs. Examples of such keywords that may be associated with EULAs include “must accept,” “indemnify,” “license,” “terms and conditions,” and so on. The presence of such keywords in the response may indicate that the material is subject to an EULA.

The method of FIG. 9 also includes determining (916) that the requested material (902) is subject a EULA if the content of the response contains the predefined licensing keywords. That is, the fact that the predefined licensing keywords are contained in the response is taken as an indication that the requested material is subject to a EULA.

The method of FIG. 9 also includes notifying (926) a user (924) that the requested material (902) is subject to a EULA if the content of the response (912) contains predefined licensing keywords. As discussed above, notifying (926) a user (924) that the requested material is subject to a EULA may be carried out by displaying a notification on the user's computer, sending an electronic message to the user, for example, an email message, making a log entry in an identified log, and in other ways as will occur to those of skill in the art.

In addition to notifying the user if the content of the response contains predefined licensing keywords, license administration personnel may also be notified. Notifying license administration personnel if the content of the response contains predefined licensing keywords may be carried out by displaying a notification on a license administrators computer, sending an electronic message to a license administrator, for example, an email message, making a log entry in an identified log available to license administration personnel, and in other ways as will occur to those of skill in the art.

If the content of the response (912) does not contain predefined license identification metadata and does not contain predefined licensing keywords the method of FIG. 9 the method of FIG. 9 proceeds by providing (922) the requested material to the user. Providing the requested material to the user may be carried out by displaying, in a browser, the requested material, downloading the material to a user's client computer, or any other way of providing the requested material to a user that will occur to those of skill in the art.

Creating Rules For The Administration of End User License Agreements

As discussed above, administering end-user license agreements is typically carried out by use of one or more license administration rules. For further explanation, FIG. 10 sets forth a flow chart illustrating an exemplary computer-implemented method for creating rules for the administration of EULAs according to embodiments of the present invention. The method of FIG. 10 includes identifying (308), from historical license data (302), a license administration pattern (314). A license administration pattern is a trend in the manner in which EULAs, terms in EULAs, or material subject to EULAs are administered for an organization. Identifying a license administration pattern may be carried out by a user by reviewing previously accepted EULAs and previously rejected EULAs and identifies a pattern of license administration.

Requiring a user to review previously accepted and rejected EULAs to identify license administration patterns may be cumbersome. In the method of FIG. 10, therefore, identifying (308) a license administration pattern (314) from historical license data (302) is carried out by data mining (310) a collection of accepted EULAs (304) and data mining (312) a collection of rejected EULAs (306). For the purpose of this specification, data mining means analyzing historical license data and discovering relationships, patterns, knowledge, or information from the historical license data and using the discovered relationships, patterns or knowledge to identify license administration patterns. Many data mining techniques typically include the steps of preparing the data for data mining, choosing an appropriate data mining algorithm, and deploying the data mining algorithm.

Preparing the historical license data for data mining includes providing a predetermined structure for the historical license data. The particular predetermined structures for each particular kind of license data may vary depending on factors such as the type of license data. However, in typical embodiments, each element of license data of a given kind will share a predefined structure thereby facilitating mining those license data elements for license administration patterns.

Data mining also typically includes choosing an appropriate data mining algorithm. An appropriate data mining algorithm for discovering license administration patterns will vary on many factors such as the type of saved license data available to mine, the available computer software and hardware used to carry out the data mining, the size of the collection of historical license data, or any other factor that will occur to those of skill in the art. Many data mining algorithms exist and all algorithms that appropriately find license administration patterns from a collection of historical license data are within the scope of the present invention.

Although many data mining algorithms exist, many of the data mining algorithms share the same goals. Typical data mining algorithms attempt to solve the problem of being overwhelmed by the volume of data that computers can collect. Data mining algorithms also typically attempt to shield users from the unwieldy body of data by analyzing it, summarizing it, or drawing conclusions from the data that the user can understand. Data mining algorithms also typically attempt to identify patterns in the data that may be used to develop rules consistent with the pattern in order to automate administration of a process which generated the data, such as a license administration process.

One way of discussing various data mining algorithms is by discussing the functions that they perform rather than the specifics of their underlying mathematical operation. Another way of discussing various data mining algorithms is by describing a “rule” returned by the data mining algorithm. A rule is a description of the relationship, pattern, knowledge, or information found by the data mining algorithm. Exemplary data mining algorithms are explained in this specification by describing the functions they perform and the rules they return. The following examples of data mining algorithms are included in this specification for clarity of discussion, not for limitation. Any method of data mining that will occur to those of skill in the art, regardless of type, classification, or underlying mathematical operation, is within the scope of the present invention.

In some examples, identifying a license administration pattern from historical license data includes data mining with an association function. Association functions are typically used to find patterns having connected or related events. For example, in the context of identifying license administration patterns, data mining with association functions may identify a license administration pattern such as “95% of shareware EULAs that were received were referred to the legal department for individual review.” Such an identified pattern may lead to a rule such as “If a received EULA is for shareware, then the EULA should be sent to the legal department for review.”

In still other examples, identifying a license administration pattern from historical license data includes data mining with a classification operator. A classification operator is applied to a set of historical license data that are organized or ‘tagged’ as belonging to a certain class, such as for example, historical license data related to open source software. A classification operator examines the set of tagged license data and produces a function that identifies the class. Such a classification operator can be used, for example, to analyze a EULA that was just received to determine a classification to which it belongs. For example, the classification operator may analyze the received EULA to determine if the EULA relates to open source software or not.

In still other examples, identifying a license administration pattern from historical license data includes data mining with a clustering operator. By contrast to data mining with a classification operator whose input are a set of tagged data, the inputs to a clustering operator are a set of untagged data. That is, no classes are known at the time the clustering operator is applied. Data mining with a cluster operator may be used to segment or classify the historical license data, such as by segmenting the license data clauses found in the EULA. Many of the underlying operations used to build classification operators can also be used to build clustering operators.

While various data mining algorithms have been discussed separately, in the various examples above, different data mining algorithms can be used together to identify license administration patterns for the user. Furthermore, any method identifying a subset of the historical license data that comprise a license administration pattern is within the scope of the present invention, not just data mining. In various exemplary embodiments, identifying a subset of historical license data that comprise a license administration pattern includes using data discrimination, using artificial intelligence, using machine learning, using pattern recognition, or any method of identifying a subset of historical license data that comprise a license administration pattern that will occur to those of skill in the art.

One example of off-the-shelf data mining software includes IBM'® “Intelligent Miner.” “Intelligent Miner” can be operated in several computing environments including AIX, AS/400, and OS/390. The Intelligent Miner is an enterprise data mining tool, designed for client/server configurations and optimized to mine very large data sets, such as gigabyte data sets. The Intelligent Miner includes a plurality of data mining techniques or tools used to analyze large databases and provides visualization tools used to view and interpret the different mining results.

Many data mining processes used to identify license administration patterns are statistical or probabilistic. It is therefore possible to find patterns in the historical license data that have little or nothing to do with approving or rejecting a future EULA. That is, methods used to find a license administration pattern can return patterns that are unnecessary, undesirable, or inefficient in identifying a rule for determining whether terms of a EULA are acceptable. Many examples of identifying a license administration pattern from historical license data therefore include editing an identified subset of historical license data, such as by deleting one or more data elements from the subset, before defining the license administration pattern.

The method of FIG. 10 also includes creating (316), in dependence upon the license administration pattern (314), a license administration rule (330). In the method of FIG. 10, creating (316) a license administration rule (330) includes defining (318), in dependence upon the license administration pattern (314), one or more conditions (320) for accepting a EULA. For further explanation, consider the following condition of accepting a EULA: IF EULA ID = EULA1234   THEN AcceptCondition = True

In the example above the condition for accepting the EULA is premised on an identification of the EULA. If the EULA ID is ‘EULA1234’ then the condition for accepting the EULA is met.

In the method of FIG. 10, creating (316) a license administration rule (330) also includes defining (322), in dependence upon the license administration pattern (314), one or more conditions (324) for rejecting a EULA. For further explanation, consider the following condition for rejecting a EULA: IF EULA includes keyword = ‘arbitration’   THEN acceptCondition = False

In the example above the condition for rejecting the EULA is premised on an identification of the keyword ‘arbitration’ within the EULA. If the word ‘arbitration’ is contained in the EULA, then a condition for rejecting the EULA is met.

In the method of FIG. 10, creating (316) a license administration rule (330) also includes associating (326) an action (328) with the one or more conditions (320) for accepting a EULA and associating (326) an action (328) with the one or more conditions (324) for rejecting a EULA. Associating (326) an action (328) with the one or more conditions (320, 324) may be carried out by identifying an action for execution when one or more of the conditions for accepting or rejecting the EULA are met. For further explanation, consider the following condition for acceptance with an associated action. IF EULA ID = EULA1234;   THEN AcceptCondition = True   ACTION = sendAcceptMessage( )

In the example above the condition for accepting the EULA is premised on an identification of the EULA. If the EULA ID is ‘EULA1234’ then a condition for accepting the EULA is met and an associated action “SendAcceptMessage( )’ is executed to send a user a message instructing the user to accept the license.

The method of FIG. 10 also includes determining (334) whether a threshold (332) number of new license administration rules (330) have been created executing (336) an action. Determining (334) whether a threshold (332) number of new license administration rules have been created may be carried out by comparing a cumulative count of new license administration rules (330) to a threshold (332). The threshold is a configurable, predefined number of new license administration rules that must be created before the action is executed.

The action executed (336) is a configurable, predefined action to be taken when the threshold number of new license has been created. Such actions may advantageously be used to notify users that a number of new license administration rules have been created. For further clarification, consider the following example. An action is executed that sends a notification to selected users of a license administration system when more than fifty new license administration rules have been created. In this example, the notified users are advised that they may attempt to retrieve material subject to EULAs that were previously rejected.

Because license administration rules governing the administration of EULAs may change over time, some new license administration rules may supersede old license administration rules. For further explanation, therefore, FIG. 11 sets forth a flow chart illustrating an exemplary computer-implemented method for determining whether one or more new license administration rules supersede one or more old license administration rules. An old license administration rule is any existing license administration rule. The term ‘old’ is not used to indicate any requirement of age and is used herein to distinguish such an existing license administration rule from a newly created license administration rule.

The method of FIG. 11 includes determining (508) whether one or more new license administration rules (504) supersede one or more old license administration rules (506). A new license administration rule supersedes an old license administration rule if a EULA rejected by the new license administration rule is acceptable under an old license administration rule, or if a EULA acceptable under the new license administration rule is rejected by the old license administration rule. If no new license administration rules supersede old license administration rules, the method of FIG. 11 ends (510).

The method of FIG. 11 also includes executing (512) an action in response to determining (508) that one or more new license administration rules (504) supersede one or more old license administration rules (506). In the exemplary method of FIG. 11, executing (512) an action in response to determining (508) that one or more new license administration rules (504) supersede one or more old license administration rules (506) includes identifying (518) from historical license data a EULA (522) previously rejected based on one or more superseded license administration rules and notifying (516) one or more users of one or more new rules in the method of FIG. 11.

Virtual License Documents

As discussed above, administration of end-user license agreements according to some embodiments of the present invention may be carried out by use of virtual license documents. A virtual license document is a document including one or more licensing clause governing the particular material and metadata describing the licensing clause. Such a virtual license document may be implemented as a markup document containing both a licensing clause in text and markup describing the clause. Such a virtual license document is useful in the administration of end-user license agreements according to embodiments of the present invention.

For further explanation, FIG. 12 sets forth a flow chart illustrating an exemplary computer-implemented method for creating a virtual license document for material subject to an end-user license agreement (‘EULA’). The method of FIG. 12 includes identifying (950) a licensing clause (952) for the virtual license document (960). One way of identifying a licensing clause for the virtual license document may be carried out by identifying (968) a known licensing clause (952) in an existing end-user license agreement (‘EULA’) (964) in dependence upon licensing clause identification rules (966) as discussed below with reference to FIG. 13. Another way of identifying a licensing clause for the virtual license document may be carried out by receiving a clause for an end-user license agreement from a user as discussed below with reference to FIG. 14.

The method of FIG. 12 also includes creating (954) metadata describing the licensing clause (952). Creating metadata describing the licensing clause may be carried out by selecting one of a plurality of a markup tags identifying a licensing clause type. That is, markup tags may be predefined for a licensing clause types and made available to users in a packages virtual license creation tool allowing users to select a predefined markup tag and insert the markup tag in a markup document in association with the text of the licensing clause. Consider for example the following selection of predefined markup tags identifying licensing clause types: <clause type = arbitration> <clause ID = 1254> <clause = indemnification 345>

In this example, three predefined markup tags identifying three licensing clause types are provided. The first markup tag <clause type=arbitration> identifies a licensing clause as an arbitration clause. The second markup tag <clause ID=1254> identifies a unique licensing clause having a unique ID of ‘1254’. The third markup tag <clause=indemnification 345> identifies a unique indemnification clause ‘indemnification345.’

Creating metadata describing the clause may also be carried out by creating a markup tag identifying a licensing clause type. That is, virtual creation tools according to embodiments of the present invention may provide users with the ability to customize markup tags for particular licensing clauses. Users may therefore advantageously create customized markup tags for particular licensing clauses with increased granularity.

The method of FIG. 12 also includes inserting (962) in a markup document (958) the licensing clause (952) and the metadata (956) describing the clause. Inserting (962) in a markup document (958) the licensing clause (952) and the metadata (956) describing the clause may be carried out by including in the markup document the text of the licensing clause and, for example, markup describing the licensing clause. For further explanation, consider the following segment of an exemplary virtual license document. <virtual license document>   <VLD ID =890>   <licensor >     <licensor ID = 1 >       IBM   </licensor >   <material >     <resource ID = 797878 >   </material >         . . .   < arbitration clause >     <clause ID = 678 >       THE TEXT OF SOME ARBITRATION CLAUSE   </arbitration clause>         . . .   < restrictions of use>     <restriction = 1 >       THE TEXT OF SOME RESTRICTION ON THE USE OF       THE MATERIAL   <restriction = 34 >       THE TEXT OF SOME RESTRICTION ON THE USE OF       THE MATERIAL     <restriction = 12 >       THE TEXT OF SOME RESTRICTION ON THE USE OF       THE MATERIAL     <restriction = 1115 >       THE TEXT OF SOME RESTRICTION ON THE USE OF       THE MATERIAL   </restrictions of use> </virtual license document>

In the exemplary segment of a virtual license document above, the <virtual license document> and </virtual license document> markup tags identify the markup document as a virtual license document. The <VLD ID=890> markup tag identifies the exemplary virtual license document above uniquely as having a virtual licensing identification of ‘890.’ The <licensor > and </licensor> tags identify a licensor in the virtual license document. The <licensor ID=1> markup tag identifies uniquely the licensor as having a licensor ID of ‘1’ and the display text ‘IBM’ provides display text identifying the licensor as ‘IBM.’

In the exemplary segment of the virtual license document above, the <material> and </material> markup tags identify material subject to the virtual license document implementing a EULA and the <resource ID=797878> identifies that the material subject to the EULA is a resource having a unique identification of ‘797878.’

In the exemplary segment of the virtual license document above, the <arbitration clause> and </arbitration clause> markup tags identify that the virtual license document includes an arbitration clause and the particular arbitration clause is identified by the clause ID ‘678.’ The exemplary virtual license document also includes four restrictions of the use of resource ID ‘797878’ identified by <restrictions of use> and </restrictions of use>. The particular restrictions are identified by restriction IDs ‘1,’ ‘34,’ ‘12,’ and ‘115.’

As discussed above, creating a virtual license document for material subject to an end-user license agreement (‘EULA’) includes identifying a licensing clause for inclusion in the virtual license document. For further explanation, therefore, FIG. 13 sets forth a flow chart illustrating an exemplary method for identifying a licensing clause for the virtual license document. In the method of FIG. 13, identifying (950) a licensing clause for the virtual license document includes identifying (968) a known licensing clause (952) in an existing end-user license agreement (‘EULA’) (964) in dependence upon licensing clause identification rules (966). A known license clause in an existing end-user license agreement is a clause known to an entity seeking to create a virtual license document and currently included in a EULA. Clause identification rules (966) are rules designed to select from a known EULA a particular known licensing clause.

In the method of FIG. 13, identifying (968) a known clause (952) in an existing end-user license agreement (‘EULA’) (964) in dependence upon clause identification rules (966) includes identifying (980) keywords (972) in the existing end-user license agreement (‘EULA’) (964) predetermined to be associated with a known clause (952) in end-user license agreements and identifying (982) the known licensing clause (952) in dependence upon the keywords (972). Consider for example the following licensing clause identification rule.

-   -   If clause includes keyword ‘arbitration;’ AND     -   clause includes keyword ‘American Arbitration Association’ or         ‘AAA,’ then     -   clause ID=165

The exemplary licensing clause identification rule above operates to identify a licensing clause having licensing clause ID ‘165’ if a clause in an existing EULA from which the virtual license document is being created includes the keyword ‘arbitration’ and either the keyword ‘American Arbitration Association’ or the keyword ‘AAA.’ Licensing clause identification rules advantageously provide a vehicle to automate the creation of virtual license documents from one or more existing EULAs.

Identifying (968) a known clause (952) in an existing end-user license agreement (‘EULA’) (964) in dependence upon clause identification rules (966) according to the method of FIG. 13 operates to select known licensing clauses in dependence upon keywords. This is for explanation, and not for limitation. Identifying a known licensing clause may be carried out by use of keywords and word proximity, numbers of keywords, or any other way of identifying a known licensing clause that will occur to those of skill in the art.

Licensing clause identification rules advantageously provide a vehicle to automate the creation of virtual license documents from one or more existing EULAs. Licensing clauses, known or unknown, may also be provided by a user rather than from a known and existing EULA. For further explanation, FIG. 14 sets forth flow chart illustrating another exemplary method for identifying (950) a licensing clause (952) for the virtual license document. In the method of FIG. 14 identifying a licensing clause for the virtual license document includes receiving (968) a clause for an end-user license agreement from a user (924). Receiving a clause for an end-user license agreement from a user may be carried out through the use of GUI input widgets in selections screens presented by a virtual license document creation tool, by receiving as speech a licensing clause or any other way of receiving a licensing clause from a user that will occur to those of skill in the art.

Exemplary embodiments of the present invention are described largely in the context of a fully functional computer system for creating a virtual license document. Readers of skill in the art will recognize, however, that the present invention also may be embodied in a computer program product disposed on signal bearing media for use with any suitable data processing system. Such signal bearing media may be transmission media or recordable media for machine-readable information, including magnetic media, optical media, or other suitable media. Examples of recordable media include magnetic disks in hard drives or diskettes, compact disks for optical drives, magnetic tape, and others as will occur to those of skill in the art. Examples of transmission media include telephone networks for voice communications and digital data communications networks such as, for example, Ethernets™ and networks that communicate with the Internet Protocol and the World Wide Web. Persons skilled in the art will immediately recognize that any computer system having suitable programming means will be capable of executing the steps of the method of the invention as embodied in a program product. Persons skilled in the art will recognize immediately that, although some of the exemplary embodiments described in this specification are oriented to software installed and executing on computer hardware, nevertheless, alternative embodiments implemented as firmware or as hardware are well within the scope of the present invention.

It will be understood from the foregoing description that modifications and changes may be made in various embodiments of the present invention without departing from its true spirit. The descriptions in this specification are for purposes of illustration only and are not to be construed in a limiting sense. The scope of the present invention is limited only by the language of the following claims. 

1. A computer-implemented method for creating a virtual license document for material subject to an end-user license agreement (‘EULA’), the method comprising: identifying a licensing clause for the virtual license document; creating metadata describing the licensing clause; and inserting in a markup document the licensing clause and the metadata describing the clause.
 2. The method of claim 1 wherein identifying a licensing clause for the virtual license document further comprises identifying a known licensing clause in an existing end-user license agreement (‘EULA’) in dependence upon licensing clause identification rules.
 3. The method of claim 2 wherein identifying a known clause in an existing end-user license agreement (‘EULA’) in dependence upon clause identification rules further comprises: identifying keywords in the existing end-user license agreement (‘EULA’) predetermined to be associated with a known clause in end-user license agreements; and identifying the known licensing clause in dependence upon the keywords.
 4. The method of claim 1 wherein identifying a licensing clause for the virtual license document further comprises receiving a clause for an end-user license agreement from a user.
 5. The method of claim 1 wherein creating metadata describing the licensing clause further comprises selecting one of a plurality of a markup tags identifying a licensing clause type.
 6. The method of claim 1 wherein creating metadata describing the clause further comprises creating a markup tag identifying a licensing clause type.
 7. A system for creating a virtual license document for material subject to an end-user license agreement (‘EULA’), the system comprising: a computer processor; a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions capable of: identifying a licensing clause for the virtual license document; creating metadata describing the licensing clause; and inserting in a markup document the licensing clause and the metadata describing the clause.
 8. The system of claim 7 wherein the computer memory also has disposed within it computer program instructions capable of identifying a known licensing clause in an existing end-user license agreement (‘EULA’) in dependence upon licensing clause identification rules.
 9. The system of claim 8 wherein the computer memory also has disposed within it computer program instructions capable of: identifying keywords in the existing end-user license agreement (‘EULA’) predetermined to be associated with a known clause in end-user license agreements; and identifying the known licensing clause in dependence upon the keywords.
 10. The system of claim 7 wherein the computer memory also has disposed within it computer program instructions capable of receiving a clause for an end-user license agreement from a user.
 11. The system of claim 7 wherein the computer memory also has disposed within it computer program instructions capable of selecting one of a plurality of a markup tags identifying a licensing clause type.
 12. The system of claim 7 wherein the computer memory also has disposed within it computer program instructions capable of creating a markup tag identifying a licensing clause type.
 13. A computer-implemented computer program product for creating a virtual license document for material subject to an end-user license agreement (‘EULA’), the computer program product embodied on a computer-readable medium, the computer program product comprising: computer program instructions for identifying a licensing clause for the virtual license document; computer program instructions for creating metadata describing the licensing clause; and computer program instructions for inserting in a markup document the licensing clause and the metadata describing the clause.
 14. The computer program product of claim 13 wherein computer program instructions for identifying a licensing clause for the virtual license document further comprise computer program instructions for identifying a known licensing clause in an existing end-user license agreement (‘EULA’) in dependence upon licensing clause identification rules.
 15. The computer program product of claim 14 wherein computer program instructions for identifying a known clause in an existing end-user license agreement (‘EULA’) in dependence upon clause identification rules further comprise: computer program instructions for identifying keywords in the existing end-user license agreement (‘EULA’) predetermined to be associated with a known clause in end-user license agreements; and computer program instructions for identifying the known licensing clause in dependence upon the keywords.
 16. The computer program product of claim 13 wherein computer program instructions for identifying a licensing clause for the virtual license document further comprise computer program instructions for receiving a clause for an end-user license agreement from a user.
 17. The computer program product of claim 13 wherein computer program instructions for creating metadata describing the licensing clause further comprise computer program instructions for selecting one of a plurality of a markup tags identifying a licensing clause type.
 18. The computer program product of claim 13 wherein computer program instructions for creating metadata describing the clause further comprise computer program instructions for creating a markup tag identifying a licensing clause type.
 19. The computer program product of claim 13 wherein the computer-readable medium further comprises a recording medium.
 20. The computer program product of claim 13 wherein the computer-readable medium further comprises a transmission medium. 